Responsive Design এবং Media Queries কনফিগার করা

Web Development - এক্সটিজেএস (ExtJS) - ExtJS Theming এবং Customization |

ExtJS একটি শক্তিশালী ফ্রন্টএন্ড ফ্রেমওয়ার্ক যা রেসপন্সিভ ডিজাইন এবং মিডিয়া কুয়েরি (Media Queries) সমর্থন করে। এর মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনকে বিভিন্ন ডিভাইস এবং স্ক্রীন সাইজের জন্য অটোমেটিকভাবে রিসাইজ এবং অ্যাডজাস্ট করতে পারেন। রেসপন্সিভ ডিজাইন ফিচারের মাধ্যমে, ExtJS অ্যাপ্লিকেশনগুলো মোবাইল, ট্যাবলেট এবং ডেস্কটপ প্ল্যাটফর্মের জন্য উপযুক্ত হয়ে ওঠে।


১. Responsive Design (রেসপন্সিভ ডিজাইন)

রেসপন্সিভ ডিজাইন হল এমন একটি ডিজাইন কৌশল, যেখানে ওয়েব পেজ বা অ্যাপ্লিকেশনটি বিভিন্ন স্ক্রীন সাইজ এবং রেজোলিউশনে ভালোভাবে কাজ করে। ExtJS তে, responsiveConfig এবং responsive কনফিগারেশন ব্যবহার করে অ্যাপ্লিকেশন তৈরি করা যায় যা বিভিন্ন ডিভাইসে সঠিকভাবে কাজ করবে।

responsiveConfig কনফিগারেশন ব্যবহার

responsiveConfig একটি কনফিগারেশন অবজেক্ট যা আপনার কম্পোনেন্ট বা প্যানেলের ডিজাইনকে স্ক্রীনের সাইজ অনুসারে পরিবর্তন করতে সাহায্য করে।

ResponsiveConfig উদাহরণ:

Ext.create('Ext.panel.Panel', {
    title: 'Responsive Panel',
    width: 500,
    height: 300,
    html: 'Resize the window to see the panel resize!',
    responsiveConfig: {
        'width < 500': { 
            html: 'This panel is on a small screen.' 
        },
        'width >= 500': { 
            html: 'This panel is on a large screen.' 
        }
    },
    renderTo: Ext.getBody()
});

এখানে:

  • responsiveConfig: স্ক্রীন সাইজের ভিত্তিতে কনফিগারেশন আপডেট করা হচ্ছে।
  • width < 500: যদি স্ক্রীন এর প্রস্থ 500px এর কম হয়, তাহলে প্যানেলের HTML আপডেট হবে।
  • width >= 500: যদি স্ক্রীন এর প্রস্থ 500px বা তার বেশি হয়, তাহলে অন্য HTML দেখানো হবে।

responsive প্রপার্টি উদাহরণ:

Ext.create('Ext.panel.Panel', {
    title: 'Responsive Layout Example',
    width: 400,
    height: 300,
    layout: 'vbox',
    items: [{
        xtype: 'panel',
        html: 'This panel adjusts its content based on screen size.',
        flex: 1
    }],
    responsive: true, // এটি প্যানেলকে রেসপন্সিভ করে তোলে
    renderTo: Ext.getBody()
});

responsive: true: এটি কম্পোনেন্ট বা প্যানেলকে রেসপন্সিভ করে তোলে, যা স্ক্রীন সাইজ পরিবর্তিত হলে ডাইনামিকভাবে কন্টেন্ট অ্যাডজাস্ট করবে।


২. Media Queries কনফিগার করা

Media Queries হল CSS এর একটি বৈশিষ্ট্য, যা স্ক্রীনের সাইজ, রেজোলিউশন, অরিয়েন্টেশন ইত্যাদির উপর ভিত্তি করে স্টাইল পরিবর্তন করার অনুমতি দেয়। ExtJS তে আপনি মিডিয়া কুয়েরি কনফিগারেশন ব্যবহার করে স্ক্রীন সাইজ অনুসারে উপাদানগুলির স্টাইল এবং আচরণ নিয়ন্ত্রণ করতে পারেন।

Media Queries উদাহরণ:

Ext.create('Ext.panel.Panel', {
    title: 'Media Queries Example',
    width: 600,
    height: 400,
    html: 'Resize the window to see the panel resize!',
    cls: 'media-query-panel',
    renderTo: Ext.getBody()
});

// CSS (মিডিয়া কুয়েরি কনফিগারেশন):
<style>
    .media-query-panel {
        padding: 20px;
    }

    /* ছোট স্ক্রীন সাইজের জন্য */
    @media (max-width: 600px) {
        .media-query-panel {
            background-color: lightblue;
            font-size: 12px;
        }
    }

    /* বড় স্ক্রীন সাইজের জন্য */
    @media (min-width: 601px) {
        .media-query-panel {
            background-color: lightgreen;
            font-size: 16px;
        }
    }
</style>

এখানে:

  • @media (max-width: 600px): এটি ছোট স্ক্রীনের জন্য মিডিয়া কুয়েরি।
  • @media (min-width: 601px): এটি বড় স্ক্রীনের জন্য মিডিয়া কুয়েরি।

এই CSS কনফিগারেশনটি প্যানেলের ব্যাকগ্রাউন্ড এবং ফন্ট সাইজ পরিবর্তন করবে, যখন স্ক্রীন সাইজ 600px এর নিচে বা উপরে যাবে।


৩. ExtJS-এ Responsive Layout ব্যবহার

ExtJS এ Responsive Layout কনফিগারেশন ব্যবহার করে একটি কম্পোনেন্টের সাইজ এবং অবস্থান স্ক্রীনের আকার অনুসারে পরিবর্তিত করা যেতে পারে। responsive এবং responsiveConfig কনফিগারেশন ব্যবহার করে বিভিন্ন স্ক্রীনে কম্পোনেন্টের আচরণ পরিবর্তন করতে পারেন।

Responsive Layout উদাহরণ:

Ext.create('Ext.container.Viewport', {
    layout: 'hbox',
    items: [{
        xtype: 'panel',
        title: 'Panel 1',
        html: 'This is the first panel.',
        width: 300,
        responsiveConfig: {
            'width < 500': {
                html: 'Panel 1 - Small Screen'
            },
            'width >= 500': {
                html: 'Panel 1 - Large Screen'
            }
        }
    }, {
        xtype: 'panel',
        title: 'Panel 2',
        html: 'This is the second panel.',
        width: 300,
        responsiveConfig: {
            'width < 500': {
                html: 'Panel 2 - Small Screen'
            },
            'width >= 500': {
                html: 'Panel 2 - Large Screen'
            }
        }
    }]
});

এখানে:

  • দুটি প্যানেল responsiveConfig এর মাধ্যমে রেসপন্সিভভাবে কনফিগার করা হয়েছে। স্ক্রীন সাইজ অনুযায়ী এই প্যানেলগুলির কন্টেন্ট এবং আকার পরিবর্তিত হবে।

৪. Responsive Grid

Responsive Grid ব্যবহারের মাধ্যমে, আপনি ExtJS গ্রিডকে বিভিন্ন স্ক্রীন সাইজ অনুসারে অ্যাডজাস্ট করতে পারেন।

Ext.create('Ext.grid.Panel', {
    title: 'Responsive Grid Example',
    store: {
        fields: ['name', 'email'],
        data: [
            {name: 'John', email: 'john@example.com'},
            {name: 'Jane', email: 'jane@example.com'}
        ]
    },
    columns: [{
        text: 'Name',
        dataIndex: 'name',
        flex: 1
    }, {
        text: 'Email',
        dataIndex: 'email',
        flex: 2
    }],
    responsiveConfig: {
        'width < 600': {
            columns: [{
                text: 'Name',
                dataIndex: 'name',
                flex: 2
            }]
        },
        'width >= 600': {
            columns: [{
                text: 'Name',
                dataIndex: 'name',
                flex: 1
            }, {
                text: 'Email',
                dataIndex: 'email',
                flex: 2
            }]
        }
    },
    renderTo: Ext.getBody()
});

এখানে, responsiveConfig এর মাধ্যমে স্ক্রীনের প্রস্থ অনুসারে গ্রিডের কলামগুলির সংখ্যা পরিবর্তিত হচ্ছে।


সারাংশ

  1. Responsive Design: responsiveConfig এবং responsive কনফিগারেশন ব্যবহার করে কম্পোনেন্টগুলিকে স্ক্রীনের আকার অনুযায়ী পরিবর্তিত করা যায়।
  2. Media Queries: CSS মিডিয়া কুয়েরি ব্যবহার করে স্ক্রীনের সাইজ অনুসারে স্টাইল পরিবর্তন করা যায়।
  3. Responsive Layout: স্ক্রীনের আকার অনুযায়ী লেআউট এবং কম্পোনেন্টের আচরণ পরিবর্তন করা হয়।
  4. Responsive Grid: গ্রিডের কলাম এবং অন্যান্য উপাদান স্ক্রীনের আকার অনুযায়ী পরিবর্তিত হয়।

এই ফিচারগুলির মাধ্যমে, আপনি ExtJS এ একটি রেসপন্সিভ, ডিভাইস-বান্ধব এবং স্কেলেবল অ্যাপ্লিকেশন তৈরি করতে পারবেন যা বিভিন্ন স্ক্রীন সাইজে ভালভাবে কাজ করবে।

Content added By
Promotion